package com.ziq.zcamp.api.service

import com.ziq.zcamp.api.request.user.PhoneCodeParam
import com.ziq.zcamp.api.request.user.PhoneLoginParam
import com.ziq.zcamp.api.request.user.UserInfoParam
import com.ziq.zcamp.api.respond.CampBaseRespond
import com.ziq.zcamp.api.respond.user.*
import io.reactivex.Observable
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.QueryMap


interface UserAccountService {

    @POST(PHONE_CODE_API)
    fun phoneCode(@Body params: PhoneCodeParam): Observable<PhoneCodeRespond>

    @POST(PHONE_LOGIN_API)
    fun phoneLogin(@Body params: PhoneLoginParam): Observable<PhoneLoginRespond>

    @POST(USER_INFO_API)
    fun userInfo(@Body params: UserInfoParam): Observable<UserInfoRespond>

    @GET(USER_NUM_RELATIONS_API)
    fun userNumRelation(@QueryMap params: HashMap<String, Any>): Observable<UserNumRelationRespond>

    @GET(FOLLOW_RECOMMEND_LIST_API)
    fun communityFollowRecommendList(@QueryMap params: HashMap<String, Any>): Observable<UserRelationListRespond>

    @GET(USER_FOLLOW_API)
    fun userFollow(@QueryMap params: HashMap<String, Any>): Observable<CampBaseRespond>

    @GET(USER_UN_FOLLOW_API)
    fun userUnFollow(@QueryMap params: HashMap<String, Any>): Observable<CampBaseRespond>

    @GET(USER_RELATION_API)
    fun userFollowRelation(@QueryMap params: HashMap<String, Any>): Observable<UserFollowRelationRespond>

}